beginterrainscript; 

variables;
short me_on,trgt,count,hit_trgt,rctx,rcty,mctx,mcty,last_abil_time2;
short dun_this_2;

body;

beginstate INIT_STATE;
		set_script_mode(3);
	break;

beginstate START_STATE;

	me_on = 0;
	mctx = my_loc_x();
	mcty = my_loc_y();
	if(get_terrain(mctx,(mcty + 1)) == 270)
		me_on = 1;
	if(get_terrain(mctx,(mcty - 1)) == 270)
		me_on = 1;
	if(get_terrain((mctx + 1),mcty) == 270)
		me_on = 1;
	if(get_terrain((mctx - 1),mcty) == 270)
		me_on = 1;
	if((me_on == 0) && (get_terrain(mctx,mcty) == 448)){
		set_terrain(mctx,mcty,449);
		put_effect_on_space(mctx,mcty,5,3,1);
		run_animation();
	}
	if(get_terrain(mctx,mcty) != 448)
		me_on = 0;

	if((me_on == 1) && (tick_difference(last_abil_time2,get_current_tick()) >= 1)){
		trgt = (get_ran(1,0,3));
		count = 0;
		hit_trgt = 0;
		while((count <= 3) && (hit_trgt == 0)){
			if(char_ok(trgt) == TRUE){
				rctx = char_loc_x(trgt);
				rcty = char_loc_y(trgt);
				if((can_see_loc(rctx,rcty) == TRUE) && (get_attitude(trgt) != 10))
					hit_trgt = 1;
			}
			count = (count + 1);
			trgt = (trgt + 1);
			if(trgt >= 4)
				trgt = 0;
		}
		if(hit_trgt == 0)
			trgt = get_ran(1,86,119);
		while((count <= 119) && (hit_trgt == 0)){
			if(char_ok(trgt) == TRUE){
				rctx = char_loc_x(trgt);
				rcty = char_loc_y(trgt);
				if((can_see_loc(rctx,rcty) == TRUE) && (get_attitude(trgt) != 10))
					hit_trgt = 1;
			}
			count = (count + 1);
			trgt = (trgt + 1);
			if(trgt >= 120)
				trgt = 86;
		}
		if(hit_trgt > 0){
			put_straight_zap(mctx,mcty,rctx,rcty,5);
			damage_char(trgt,get_ran(get_level(trgt),0,5),3);
			put_boom_on_space(rctx,rcty,6,0);
			run_animation_sound(53);
		}
	}

	last_abil_time2 = get_current_tick();
	end();

break;
